/*
 * trace_FunctionInfo.h
 *
 *  Created on: 2012/07/13
 *      Author: guanxiaoying
 */

#ifndef TRACE_FUNCTIONINFO_H_
#define TRACE_FUNCTIONINFO_H_
/*
  The functions information  for tracing .
  ( meta data of LinkFunciton )
  It has same index with LinkCommandList.
	  It means: If we want to access the meta data of the 5th record
	     in LinkFunciton.we can access the 5th record in this table.

  This table is created automatically at the beginning of Tr_CmdTraceAllEntries,
  and cleared automatically at the end of Tr_CmdTraceAllEntries.
*/
typedef struct {
	BOOL (*clear)( VOID );
	BOOL (*alloc)( AST );
	AST  (*getMax)( VOID );
	/* property below: index of LinkFunction  */
	ACCESS_IDX_FIELD function;
	/* property below: the entrance PATH_INFO of this function  */
	ACCESS_IDX_FIELD pathInfo;
	/* property below: the status of this function when tracing */
	ACCESS_U4_FIELD attribute;
	/* property below: get the value-scope of the return value of this function */
	VOID (*getValueScope)( AST, TRVALUESCP* );
	/* property below: record the value-scope of the return value of this function */
	VOID (*setValueScope)( AST, TRVALUESCP* );
}TRFUNCTIONACCESS;
extern const TRFUNCTIONACCESS stTrFunctionAccess;

#endif /* TRACE_FUNCTIONINFO_H_ */
